package com.taru.houseapp.dao;

import com.taru.houseapp.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface IHouseDao {
    /**
     *发布房源信息
     * @param house
     */
    int insertHouse(House house);

    /**
     * 添加房子设备
     * @param device
     * @return
     */
    int inertHouseDevice(Device device);

    /**
     * 上传房源图片路径
     * @param house
     * @return
     */
    int insertHouseImage(House house);

    /**
     * 删除房源图片路径
     * @param ids
     * @return
     */
    int deleteHouseImage(@Param("ids") List<Integer> ids);

    /**
     * 修改房源信息
     * @param house
     * @return
     */
    int updateHouse(House house);

    /**
     * 修改房屋设备
     */
    int updateHouseDevice(Device device);

    /**
     * 修改房源是否成为热门
     * @param house
     * @return
     */
    int updateHouseIsHot(House house);

    /**
     * 修改出租状态
     * @param house
     * @return
     */
    int updateHouseIsRent(House house);

    /**
     * 修改上架或下架
     * @param house
     * @return
     */
    int updateHouseIsShelf(House house);

    /**
     * 查询房源的详情---用于出租者查看
     * @param id
     * @return
     */
    House queryHouseById(String id);

    /**
     * 出租者查看自己房子
     * @return
     */
    List<House> queryHouseByUserId(@Param("userId") String userId,@Param("code") String code);

    /**
     * 查询房子详情(展示)
     * @return
     */
    House queryHouseByIdRenter(String id);

    /**
     * 判断是否被当前用户收藏过
     * @param voHouseColl
     * @return
     */
    VoHouseColl queryIsCollectionHouse(VoHouseColl voHouseColl);

    /**
     * 添加收藏
     * @param voHouseColl
     * @return
     */
    int insertCollectionHouse(VoHouseColl voHouseColl);

    /**
     * 取消收藏
     * @param voHouseColl
     * @return
     */
    int deletedCollectionHouse(VoHouseColl voHouseColl);

    /**
     * 查看房子和房子出租人信息
     * @param houseId
     * @return
     */
    House queryHouseAndRentOutUser(String houseId);

    /**
     * 租房人分类查询房源
     * @param city
     * @param villageName
     * @return
     */
    List<House> queryHouseByCategory(@Param("city") String city,@Param("villageName") String villageName,@Param("code") String code,@Param("orderNumber") String orderNumber);

    /**
     * 查询收藏
     * @param userId
     * @param code
     * @return
     */
    List<House> queryCollectionHouse(@Param("userId") String userId,@Param("code") String code);

    /**
     * 热门房子
     * @param city
     * @return
     */
    List<House> queryHouseByHot(String city);

    /**
     * 普通房源
     * @param city
     * @return
     */
    List<House> queryHouseByCommon(String city);
}
